import {
    createVNode,
    render
} from 'vue'
import XtxConfirm from './xtx-confirm.vue'
// 创建一个真实的dom
const div = document.createElement('div')
div.setAttribute('class', 'xtx-message-container')
document.body.appendChild(div)

export default ({
    title,
    text
}) => {
    //  希望确认走正常流程，取消走catch
    return new Promise((resolve, reject) => {
        // 点击确认按钮
        const submitCallback = () => {
            // 正常执行
            resolve()

            // 销毁组件
            render(null, div)
        }

        // 点击取消按钮

        const cancelCallback = () => {
            // 销毁组件
            render(null, div)

            // 抛出异常
            reject(new Error('已经取消'))
        }

        const vnode = createVNode(XtxConfirm, {
            title,
            text,
            submit: submitCallback,
            cancel: cancelCallback
        })
        render(vnode, div)
    })
}